package com.yunkeji.common.enums.app;

import com.yunkeji.common.exception.AppServiceException;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;
import java.util.Optional;

/**
 * 用户状态
 *
 * @author yunkeji
 */
@Getter
@AllArgsConstructor
public enum SexEnum {
    男(0),
    女(1),
    未知(2);

    private final Integer code;

    public static SexEnum getSexByCode(Integer code) {
        SexEnum[] values = SexEnum.values();
        Optional<SexEnum> first =
                Arrays.stream(values).filter(item -> item.getCode().equals(code)).findFirst();
        if (first.isPresent()) {
            return first.get();
        } else {
            throw AppServiceException.paramException("性别参数异常");
        }
    }

    /**
     * 传男返回女,传女返回男
     *
     * @param sexEnum
     * @return
     */
    public static SexEnum getOpposite(SexEnum sexEnum) {
        return sexEnum.getCode() == SexEnum.男.getCode() ? SexEnum.女 : SexEnum.男;
    }
}
